
//todo
// 假设有k个人质和k个绑匪围成一圈。人质的编号从1到k，绑匪的编号从k+1到2k。
// 从编号1开始，每次从其中选出第m个人(隔m-1选出一人)出列。
// 希望求出m的最小值，使得最先出列的k个人都是绑匪，即都是编号从k+1到2k的人。
#include "iostream"
#include "vector"
#include "unordered_map"
#include "algorithm"
struct Fapai{
    int i=0;
    const char arr[4]={'c','d','h','s'};
    bool first= true;
    Fapai(int p){
        i=p;
    }
    void step(){
        i+=4;
    }
    void print(){
        int set=i/13;
        int id=i%13;
        if(!first){
            printf(" ");
        }
        first=false;
        printf("%c %d",arr[set],id);

    }
};
int main() {
    int a;
//    int
//    is_huiwen(1441,10);
    while (std::cin >> a) {
        Fapai f(a-1);
        while(f.i<13*4){
            f.print();
            f.step();
        }
        printf("\n");
    }
//    while(1){}
    return 0;
}

